访问电脑版页面

导航:老古开发网手机版STM32单片机STM32单片机的中断系统

STM32F0(3)EXTI 外部中断配置

导读:// 引脚 PA0 的外部中断配置void Key_GPIO_Init(void){// 设置 PA0 口为上拉输入模式RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // 打开该引脚的GPIO时钟GPIOA->MODER &= ~GPIO_MODER_MODER0_1; // 设置为输入模式GPIOA->M
关键字:
exti,stm32f0,外部中断配置,

// 引脚 PA0 的外部中断配置

void Key_GPIO_Init(void)

{

// 设置 PA0 口为上拉输入模式

RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // 打开该引脚的GPIO时钟

GPIOA->MODER &= ~GPIO_MODER_MODER0_1; // 设置为输入模式

GPIOA->MODER &= ~GPIO_MODER_MODER0_0;

GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR0_1; //上拉 == 相当于设置初始电平为 1

GPIOA->PUPDR |= GPIO_PUPDR_PUPDR0_0; // 如果设置为下拉的话,初始电平为 0

// 设置 PA0 外部中断的响应方式 -- 上升沿 和 下降沿 触发

EXTI->IMR |= EXTI_IMR_MR0; // 外部中断线开关

EXTI->EMR |= EXTI_EMR_MR0; // 外部中断事件开关

EXTI->FTSR |= EXTI_FTSR_TR0; // 下降沿触发

EXTI->RTSR |= EXTI_RTSR_TR0; // 上升沿触发

// 开外部中断及优先级配置

// 优先级数值为 0x000000c0 (越大优先级越低) -- 每个优先级占8位

NVIC->IP[EXTI0_1_IRQn / 4] |= (0x000000c0 << (8 * (EXTI0_1_IRQn % 4))); // 设置优先级

NVIC->ISER[0] |= (1 << EXTI0_1_IRQn); // 打开外部中断

}

// 中断处理函数

void EXTI0_1_IRQHandler(void)

{

EXTI->PR |= EXTI_PR_PR0; 需要手动清除标志位

if(根据当前引脚的当前状态来判断该引脚是上升沿 或 下降沿 产生的中断)

//

}


来源:互联网   作者:karen  2018/12/31 18:20:01
栏目: [ STM32单片机的中断系统]

相关阅读

关于STM32中断向量表的位置 、重定向问题

STM32单片机外部中断的设置方法

STM32F0(3)EXTI 外部中断配置

STM32单片机中抢占优先级和响应优先级的表达方式解析

STM32单片机是怎样执行中断函数中的应用的

STM32单片机的EXIT中断解析

如何配置stm32中断的优先级

STM32的基本概念及中断应用

STM32中断过程详解

如何采用STM32单片机中断向量控制器NVIC来分配优先级的数量

STM32的Cortex-M3中断异常处理

STM32单片机为什么要中断

STM32单片机实现外部中断的步骤及方法

STM32单片机优先级的定义

STM32单片机的外部中断和中断控制器的特点解析

STM32学习笔记——外部中断的初步了解

STM32中断与嵌套NVIC快速入门

STM32 GPIO外部中断总结

关于STM32配置中断和GPIO针脚问题

基于STM32单片机秒中断源和闹钟中断源的解决方案